#ifndef __CAMERA_H
#define __CAMERA_H

#include <time.h>
#include <wait.h>
#include <math.h>
#include <stdio.h>
#include <fcntl.h>
#include <errno.h>
#include <stdlib.h>
#include <string.h>
#include <dirent.h>
#include <unistd.h>
#include <stdbool.h>
#include <pthread.h>
#include <semaphore.h>
#include <stdint.h>

#include <sys/ipc.h>
#include <sys/shm.h>
#include <sys/sem.h>
#include <sys/msg.h>
#include <sys/mman.h>
#include <sys/stat.h>
#include <sys/time.h>
#include <sys/types.h>

#include <linux/fb.h>
#include <linux/input.h>
#include <linux/videodev2.h>
#include "jpeglib.h"


extern int CAMERA_W;
extern int CAMERA_H;

extern int R[256][256];
extern int G[256][256][256];
extern int B[256][256];

extern char formats[5][16];
extern struct v4l2_fmtdesc fmtdesc;
extern struct v4l2_format  fmt;
extern struct v4l2_capability cap;

bool get_caminfo(int camfd);
bool get_camfmt(int camfd);
bool get_camcap(int camfd);

void set_camfmt(int camfd);

//void *convert(void *arg);
//准备好YUV---->RGB映射表
void convert();

void yuv2jpg(uint8_t *yuv);

int camera_init(const char * pathname,int nbuf);

#endif